import { DeviceVaribaleStatusEnum } from '@/enums/iot/deviceVaribaleStatusEnum';
import { DeviceAlarmStatusEnum } from '@/enums/iot/deviceAlarmStatusEnum';
import { DeviceStatusEnum } from '@/enums/iot/deviceStatusEnum';

/** 变量信息 */
export interface VariableInfo {
  /** 变量名称 */
  VariableName: string;
  /** 值 */
  Value: any;
}

/** 设备变量标识 */
export interface DeviceVariableIdentity {
  /** 设备名称 */
  DeviceName: string;
  /** 变量名称 */
  VariableName: string;
}
/** 设备变量信息 */
export interface DeviceVariableInfo extends DeviceVariableIdentity {
  /** 值 */
  Value: any;
}
/** 设备变量响应 */
export interface DeviceVariableResponse extends DeviceVariableInfo {
  /** 状态 */
  Status: DeviceVaribaleStatusEnum;
  /** 消息 */
  Message: string;

  /** 熟化值 */
  CookedValue: any;
  /** 时间戳 */
  Timestamp: Date;
  /** 警报状态 */
  AlarmStatus: DeviceAlarmStatusEnum;
}

/** 设备标识 */
export interface DeviceIdentity {
  /** 设备编号 */
  DeviceId: string | bigint;
  /** 设备名称 */
  DeviceName: string;
}
/** 设备状态 */
export interface DeviceState extends DeviceIdentity {
  /** 启用 */
  Enabled: boolean;
  /** 已连接 */
  Connected: boolean;
  /** 设备状态 */
  Status: DeviceStatusEnum;
}
/** 设备信息 */
export interface DeviceInfo extends DeviceState {
  /** 变量集合 */
  Variables: DeviceVariableResponse[];
}
